package com.netdisk.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.netdisk.dto.FileDTO;
import com.netdisk.entity.Favorite;
import com.netdisk.vo.PageResult;

/**
 * 收藏服务接口
 */
public interface FavoriteService extends IService<Favorite> {

    /**
     * 添加收藏
     *
     * @param fileId 文件ID
     * @param userId 用户ID
     * @return 是否收藏成功
     */
    boolean addFavorite(Integer fileId, Integer userId);

    /**
     * 取消收藏
     *
     * @param fileId 文件ID
     * @param userId 用户ID
     * @return 是否取消成功
     */
    boolean removeFavorite(Integer fileId, Integer userId);

    /**
     * 获取收藏文件列表
     *
     * @param userId 用户ID
     * @param page 页码
     * @param pageSize 每页大小
     * @param query 搜索关键词
     * @return 分页结果
     */
    PageResult<FileDTO> listFavorites(Integer userId, Integer page, Integer pageSize, String query);

    /**
     * 检查文件是否已收藏
     *
     * @param fileId 文件ID
     * @param userId 用户ID
     * @return 是否已收藏
     */
    boolean isFavorite(Integer fileId, Integer userId);
} 